package com.soyotec.algorithm.plugin;

import java.io.Serializable;

/**
 * 算法目标惩罚阈值信息类
 */
public class Penalty implements Serializable {
    public Penalty(Double penaltyBase, Integer penaltyExponent, Double penaltyMultiplier) {
        this.penaltyBase = penaltyBase;
        this.penaltyExponent = penaltyExponent;
        this.penaltyMultiplier = penaltyMultiplier;
    }
    /**
     * 惩罚基数
     */
    private Double penaltyBase;

    /**
     * 惩罚指数
     */
    private Integer penaltyExponent;

    /**
     * 惩罚因子
     */
    private Double penaltyMultiplier;

    /**
     * 无参构造器
     */
    public Penalty() {
    }

    /**
     * 构造器
     *
     * @param penaltyBase   惩罚基数
     * @param penaltyExponent  惩罚指数
     * @param penaltyMultiplier 惩罚因子
     */
    public Penalty(String penaltyBase, String penaltyExponent, String penaltyMultiplier) {
        this(Double.valueOf(penaltyBase), Integer.valueOf(penaltyExponent), Double.valueOf(penaltyMultiplier));
    }

    public Double getPenaltyBase() {
        return penaltyBase;
    }

    public void setPenaltyBase(Double penaltyBase) {
        this.penaltyBase = penaltyBase;
    }

    public Integer getPenaltyExponent() {
        return penaltyExponent;
    }

    public void setPenaltyExponent(Integer penaltyExponent) {
        this.penaltyExponent = penaltyExponent;
    }

    public Double getPenaltyMultiplier() {
        return penaltyMultiplier;
    }

    public void setPenaltyMultiplier(Double penaltyMultiplier) {
        this.penaltyMultiplier = penaltyMultiplier;
    }

    public static void main(String[] args){
        Penalty penalty = new Penalty(0D,2,1000D);
    }
}
